package com.hlmedicals.app.system.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 系统用户表,使用二级缓存
 * 
 * @author sszvip
 */
@Entity
@Table(name = "his_patient")
public class HisPatient implements java.io.Serializable {
	@Id
	@Column(name = "id", nullable = false, length = 32)
	private String id; // 用户的主键不再自动生成
	@Column(name = "realname", length = 50)
	private String realName;// 真实姓名
	/** 手机号,后期接入app 可能要使用phone登录 */
	@Column(name = "mobile_phone", nullable = true, length = 11)
	private String mobilePhone; // 手机号
	@Column(name = "head_url", nullable = true, length = 255)
	private String headUrl; // 头像url
	private Short status;//
	/** 病人身份证号 */
	@Column(name = "idcard", nullable = false, length = 18)
	private String idcard;
	/** 当前责任医生 ，变更医生时要更新此字段 */
	@Column(name = "doctor_id", nullable = true, length = 32)
	private String doctorId;
	@Column(name = "email", nullable = true, length = 128)
	private String email;
	/** 建档单位id */
	@Column(name = "org_id", nullable = true)
	private String orgId;
	/** 所属家庭 */
	@Column(name = "family_id", nullable = true, length = 32)
	private String familyId;
	/** 病人类型 0:普通 ，1：vip */
	@Column(name = "type", nullable = true, length = 1)
	private String type;
	/** 性别 */
	@Column(name = "sex", nullable = true, length = 1)
	private String sex;
	/** 生日 */
	@Column(name = "birth", nullable = true, length = 10)
	private String birth;
	/** 婚否 */
	@Column(name = "marry", nullable = true, length = 1)
	private String marry;
	/** 体重 */
	@Column(name = "weight", nullable = true)
	private Float weight;
	/** 身高 */
	@Column(name = "height", nullable = true)
	private Float height;
	/** 籍贯 */
	@Column(name = "native_place", nullable = true, length = 128)
	private String nativePlace;
	/** 现居地址 */
	@Column(name = "address", nullable = true, length = 128)
	private String address;
	/** 工作单位所在地址 */
	@Column(name = "workplace_addr", nullable = true, length = 128)
	private String workplaceAddr;
	/** 建档单位 */
	@Column(name = "org_establish", nullable = true, length = 32)
	private String orgEstablish;
	/** 建档单位所在地址 */
	@Column(name = "org_address", nullable = true, length = 128)
	private String orgAddress;
	/** 职业 */
	@Column(name = "occupation", nullable = true, length = 32)
	private String occupation;
	/** 联系电话 */
	@Column(name = "contact_phone", nullable = true, length = 11)
	private String contactPhone;
	/** 联系人电话 */
	@Column(name = "contactor_phone", nullable = true, length = 11)
	private String contactorPhone;
	/** 联系人姓名 */
	@Column(name = "contactor_name", nullable = true, length = 128)
	private String contactorName;// 联系人姓名
	/** 文化程度 */
	@Column(name = "educated", nullable = true, length = 8)
	private String educated;// 文化程度
	/** 身份证照片存储路径 */
	@Column(name = "idcard_path", nullable = true, length = 128)
	private String idcardPath;//
	/** 与户主关系 */
	@Column(name = "family_role", nullable = true, length = 32)
	private String familyRole;
	/** 已知支付方式，code值 */
	@Column(name = "patient_pay", nullable = true, length = 128)
	private String patientPay;//
	/** 未知支付方式 (其他) */
	@Column(name = "patient_pay_other", nullable = true, length = 128)
	private String patientPayOther = "";
	/** 民族 */
	@Column(name = "nation", nullable = true, length = 128)
	private String nation;
	/** 工作单位 */
	@Column(name = "company", nullable = true, length = 128)
	private String company;
	/** 常住类型 */
	@Column(name = "permanently", nullable = true, length = 128)
	private String permanently;
	/** 当前居住状况 */
	@Column(name = "permanently_curr", nullable = true, length = 128)
	private String permanentlyCurr;
	
	@Column(name = "deleted", columnDefinition = "tinyint(1) default 0")
	private Integer deleted = 0;// 删除标识
	@Column(name = "client_id", nullable = true, length = 32)
	private String clientId;
	@Column(name = "create_date", nullable = true, updatable = false)
	private Date createDate;
	@Column(name = "update_date", nullable = true)
	private Date updateDate;
	/** 创建人的账号，不是id */
	@Column(name = "create_by", nullable = true, length = 32)
	private java.lang.String createBy;
	/** 修改人的账号，不是id */
	@Column(name = "update_by", nullable = true, length = 32)
	private java.lang.String updateBy;
	//（hl7协议加字段）
	/** 因hl7查询接口，需要添加（医保卡） */
	@Column(name = "hic_card", nullable = false, length = 18)
	private String hicCard;
	/** 医院机构代码   */
	@Column(name = "hospital_code", nullable = false, length = 18)
	private String hospitalCode;
	/** 备注   */
	@Column(name = "remark", nullable = false, length = 32)
	private String remark;
	/**  户口住址   */
	@Column(name = "census_register_addr", nullable = false, length = 32)
	private String censusRegisterAddr;
	/**  出生地   */
	@Column(name = "birth_addr", nullable = false, length = 32)
	private String birthAddr;
	/**  国家   */
	@Column(name = "country", nullable = false, length = 18)
	private String country;
	/**  血型标识符   */
	@Column(name = "blood_id", nullable = false, length = 18)
	private String bloodId;
	/**  血型代码   */
	@Column(name = "blood_code", nullable = false, length = 18)
	private String bloodCode;
	/**  血型文本   */
	@Column(name = "blood_txt", nullable = false, length = 18)
	private String bloodTxt;
	/**  医保中心编号   */
	@Column(name = "medical_id", nullable = false, length = 18)
	private String medicalId;
	/**  医保中心名称   */
	@Column(name = "medical_name", nullable = false, length = 18)
	private String medicalName;
	/**  医保患者类别   */
	@Column(name = "medical_patient_type", nullable = false, length = 18)
	private String medicalPatientType;
	/**  保险号码/社会保障号（公费证号）   */
	@Column(name = "insurance_number", nullable = false, length = 18)
	private String insuranceNumber;
	

	/**  
	 * 方法：获取medicalId  
	 * @return medicalId medicalId  
	 */
	public String getMedicalId() {
		return medicalId;
	}

	/**  
	 * 方法：设置medicalId  
	 * @param medicalId medicalId  
	 */
	public void setMedicalId(String medicalId) {
		this.medicalId = medicalId;
	}

	/**  
	 * 方法：获取clientId  
	 * @return clientId clientId  
	 */
	public String getClientId() {
		return clientId;
	}

	/**  
	 * 方法：获取hospitalCode  
	 * @return hospitalCode hospitalCode  
	 */
	public String getHospitalCode() {
		return hospitalCode;
	}

	/**  
	 * 方法：获取remark  
	 * @return remark remark  
	 */
	public String getRemark() {
		return remark;
	}

	/**  
	 * 方法：获取censusRegisterAddr  
	 * @return censusRegisterAddr censusRegisterAddr  
	 */
	public String getCensusRegisterAddr() {
		return censusRegisterAddr;
	}

	/**  
	 * 方法：获取birthAddr  
	 * @return birthAddr birthAddr  
	 */
	public String getBirthAddr() {
		return birthAddr;
	}

	/**  
	 * 方法：获取country  
	 * @return country country  
	 */
	public String getCountry() {
		return country;
	}

	/**  
	 * 方法：获取bloodId  
	 * @return bloodId bloodId  
	 */
	public String getBloodId() {
		return bloodId;
	}

	/**  
	 * 方法：获取bloodCode  
	 * @return bloodCode bloodCode  
	 */
	public String getBloodCode() {
		return bloodCode;
	}

	/**  
	 * 方法：获取bloodTxt  
	 * @return bloodTxt bloodTxt  
	 */
	public String getBloodTxt() {
		return bloodTxt;
	}

	/**  
	 * 方法：获取medicalName  
	 * @return medicalName medicalName  
	 */
	public String getMedicalName() {
		return medicalName;
	}

	/**  
	 * 方法：获取medicalPatientType  
	 * @return medicalPatientType medicalPatientType  
	 */
	public String getMedicalPatientType() {
		return medicalPatientType;
	}

	/**  
	 * 方法：获取insuranceNumber  
	 * @return insuranceNumber insuranceNumber  
	 */
	public String getInsuranceNumber() {
		return insuranceNumber;
	}

	/**  
	 * 方法：设置clientId  
	 * @param clientId clientId  
	 */
	public void setClientId(String clientId) {
		this.clientId = clientId;
	}

	/**  
	 * 方法：设置hospitalCode  
	 * @param hospitalCode hospitalCode  
	 */
	public void setHospitalCode(String hospitalCode) {
		this.hospitalCode = hospitalCode;
	}

	/**  
	 * 方法：设置remark  
	 * @param remark remark  
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**  
	 * 方法：设置censusRegisterAddr  
	 * @param censusRegisterAddr censusRegisterAddr  
	 */
	public void setCensusRegisterAddr(String censusRegisterAddr) {
		this.censusRegisterAddr = censusRegisterAddr;
	}

	/**  
	 * 方法：设置birthAddr  
	 * @param birthAddr birthAddr  
	 */
	public void setBirthAddr(String birthAddr) {
		this.birthAddr = birthAddr;
	}

	/**  
	 * 方法：设置country  
	 * @param country country  
	 */
	public void setCountry(String country) {
		this.country = country;
	}

	/**  
	 * 方法：设置bloodId  
	 * @param bloodId bloodId  
	 */
	public void setBloodId(String bloodId) {
		this.bloodId = bloodId;
	}

	/**  
	 * 方法：设置bloodCode  
	 * @param bloodCode bloodCode  
	 */
	public void setBloodCode(String bloodCode) {
		this.bloodCode = bloodCode;
	}

	/**  
	 * 方法：设置bloodTxt  
	 * @param bloodTxt bloodTxt  
	 */
	public void setBloodTxt(String bloodTxt) {
		this.bloodTxt = bloodTxt;
	}

	/**  
	 * 方法：设置medicalName  
	 * @param medicalName medicalName  
	 */
	public void setMedicalName(String medicalName) {
		this.medicalName = medicalName;
	}

	/**  
	 * 方法：设置medicalPatientType  
	 * @param medicalPatientType medicalPatientType  
	 */
	public void setMedicalPatientType(String medicalPatientType) {
		this.medicalPatientType = medicalPatientType;
	}

	/**  
	 * 方法：设置insuranceNumber  
	 * @param insuranceNumber insuranceNumber  
	 */
	public void setInsuranceNumber(String insuranceNumber) {
		this.insuranceNumber = insuranceNumber;
	}

	/**  
	 * 方法：获取hicCard  
	 * @return hicCard hicCard  
	 */
	public String getHicCard() {
		return hicCard;
	}

	/**  
	 * 方法：设置hicCard  
	 * @param hicCard hicCard  
	 */
	public void setHicCard(String hicCard) {
		this.hicCard = hicCard;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}


	/**
	 * 方法：取得 String
	 * 
	 * @return: String headUrl
	 */

	public String getHeadUrl() {
		return headUrl;
	}

	/**
	 * 方法：设置String
	 * 
	 * @param: String headUrl
	 */
	public void setHeadUrl(String headUrl) {
		this.headUrl = headUrl;
	}

	public Short getStatus() {
		return this.status;
	}

	public void setStatus(Short status) {
		this.status = status;
	}


	/**
	 * 方法：取得 String
	 * 
	 * @return: String mobilePhone
	 */
	public String getMobilePhone() {
		return mobilePhone;
	}

	/**
	 * 方法：设置String
	 * 
	 * @param: String mobilePhone
	 */
	public void setMobilePhone(String mobilePhone) {
		this.mobilePhone = mobilePhone;
	}


	
	public String getRealName() {
		return this.realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	
	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	
	public Date getUpdateDate() {
		return updateDate;
	}

	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}

	public HisPatient() {
	}

	
	public Integer getDeleted() {
		return deleted;
	}

	public void setDeleted(Integer deleted) {
		this.deleted = deleted;
	}

	
//	public String getClientId() {
//		return clientId;
//	}
//
//	public void setClientId(String clientId) {
//		this.clientId = clientId;
//	}

	
	public String getPatientPay() {
		return patientPay;
	}

	
	public String getPermanentlyCurr() {
		return permanentlyCurr;
	}

	public String getPatientPayOther() {
		return patientPayOther;
	}

	public void setPatientPayOther(String patientPayOther) {
		this.patientPayOther = patientPayOther;
	}

	public void setPermanentlyCurr(String permanentlyCurr) {
		this.permanentlyCurr = permanentlyCurr;
	}

	public void setPatientPay(String patientPay) {
		this.patientPay = patientPay;
	}

	public String getFamilyRole() {
		return familyRole;
	}

	public void setFamilyRole(String familyRole) {
		this.familyRole = familyRole;
	}

	public String getNation() {
		return nation;
	}

	public void setNation(String nation) {
		this.nation = nation;
	}

	public String getCompany() {
		return company;
	}

	public void setCompany(String company) {
		this.company = company;
	}


	public String getWorkplaceAddr() {
		return workplaceAddr;
	}

	public void setWorkplaceAddr(String workplaceAddr) {
		this.workplaceAddr = workplaceAddr;
	}

	public String getPermanently() {
		return permanently;
	}

	public void setPermanently(String permanently) {
		this.permanently = permanently;
	}

	
	public String getFamilyId() {
		return familyId;
	}

	public void setFamilyId(String familyId) {
		this.familyId = familyId;
	}

	public String getIdcardPath() {
		return idcardPath;
	}

	public void setIdcardPath(String idcardPath) {
		this.idcardPath = idcardPath;
	}

	/**
	 * @return the occupation
	 */
	public String getOccupation() {
		return occupation;
	}

	/**
	 * @param occupation
	 *            the occupation to set
	 */
	public void setOccupation(String occupation) {
		this.occupation = occupation;
	}

	/**
	 * @return the contactorName
	 */
	public String getContactorName() {
		return contactorName;
	}

	/**
	 * @param contactorName
	 *            the contactorName to set
	 */
	public void setContactorName(String contactorName) {
		this.contactorName = contactorName;
	}

	/**
	 * @return the educated
	 */
	public String getEducated() {
		return educated;
	}

	/**
	 * @param educated
	 *            the educated to set
	 */
	public void setEducated(String educated) {
		this.educated = educated;
	}

	/**
	 * @return the idcard
	 */
	public String getIdcard() {
		return idcard;
	}

	/**
	 * @param idcard
	 *            the idcard to set
	 */
	public void setIdcard(String idcard) {
		this.idcard = idcard;
	}

	/**
	 * 方法：取得 String
	 * 
	 * @return: String type
	 */
	public String getType() {
		return type;
	}

	/**
	 * 方法：设置String
	 * 
	 * @param: String type
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * @return the sex
	 */
	public String getSex() {
		return sex;
	}

	/**
	 * @param sex
	 *            the sex to set
	 */
	public void setSex(String sex) {
		this.sex = sex;
	}

	/**
	 * @return the birth
	 */
	public String getBirth() {
		return birth;
	}

	/**
	 * @param birth
	 *            the birth to set
	 */
	public void setBirth(String birth) {
		this.birth = birth;
	}

	/**
	 * @return the marry
	 */
	public String getMarry() {
		return marry;
	}

	/**
	 * @param marry
	 *            the marry to set
	 */
	public void setMarry(String marry) {
		this.marry = marry;
	}

	/**
	 * @return the weight
	 */
	public Float getWeight() {
		return weight;
	}

	/**
	 * @param weight
	 *            the weight to set
	 */
	public void setWeight(Float weight) {
		this.weight = weight;
	}

	/**
	 * @return the height
	 */
	public Float getHeight() {
		return height;
	}

	/**
	 * @param height
	 *            the height to set
	 */
	public void setHeight(Float height) {
		this.height = height;
	}

	/**
	 * @return the nativePlace
	 */
	
	public String getNativePlace() {
		return nativePlace;
	}

	/**
	 * @param nativePlace
	 *            the nativePlace to set
	 */
	public void setNativePlace(String nativePlace) {
		this.nativePlace = nativePlace;
	}

	/**
	 * @return the address
	 */
	public String getAddress() {
		return address;
	}

	/**
	 * @param address
	 *            the address to set
	 */
	public void setAddress(String address) {
		this.address = address;
	}

	
	public String getDoctorId() {
		return doctorId;
	}

	public void setDoctorId(String doctorId) {
		this.doctorId = doctorId;
	}

	/**
	 * @return the orgEstablish
	 */
	public String getOrgEstablish() {
		return orgEstablish;
	}

	/**
	 * @param orgEstablish
	 *            the orgEstablish to set
	 */
	public void setOrgEstablish(String orgEstablish) {
		this.orgEstablish = orgEstablish;
	}

	/**
	 * @return the orgAddress
	 */
	public String getOrgAddress() {
		return orgAddress;
	}

	/**
	 * @param orgAddress
	 *            the orgAddress to set
	 */
	public void setOrgAddress(String orgAddress) {
		this.orgAddress = orgAddress;
	}

	/**
	 * @return the contactPhone
	 */
	public String getContactPhone() {
		return contactPhone;
	}

	/**
	 * @param contactPhone
	 *            the contactPhone to set
	 */
	public void setContactPhone(String contactPhone) {
		this.contactPhone = contactPhone;
	}

	public String getOrgId() {
		return orgId;
	}

	public void setOrgId(String orgId) {
		this.orgId = orgId;
	}

	public String getContactorPhone() {
		return contactorPhone;
	}

	public void setContactorPhone(String contactorPhone) {
		this.contactorPhone = contactorPhone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public java.lang.String getCreateBy() {
		return createBy;
	}

	public void setCreateBy(java.lang.String createBy) {
		this.createBy = createBy;
	}

	public java.lang.String getUpdateBy() {
		return updateBy;
	}

	
	public void setUpdateBy(java.lang.String updateBy) {
		this.updateBy = updateBy;
	}
}